一、Python简介" /> 一、Python简介" /> 一、Python简介" />
热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一、Python简介

一、Python简介Python简介python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年

Python简介

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

最新的TIOBE排行榜,Python赶超C#占据第四, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

<span role=一、Python简介">

 
Python是一门什么样的语言?

python是一门动态解释性的强类型定义语言

 

Python语言缺点

第一个缺点就是运行速度慢。(相对而言。)
第二个缺点就是代码不能加密。(编译型语言只需要把编译后的机器码发布出去。要从机器码反推出源代码是不可能的。)

 

Python版本

本人才疏学浅不敢妄自菲薄,引用python的声明。

Python 科学栈中的所有主要项目现在都支持 Python 3.x 和 Python 2.7,很多项目已经支持这两种版本很多年。尽管我们不断开发用于高效维护兼容性的工具和技术,但是在大量代码开发中这仍然是虽然微小但经常出现的冲突。

我们希望充分使用 Python 3,目前接受交叉兼容代码以实现顺利过渡,但是我们不打算无限期维护该兼容性。尽管从 Python 2 到 Python 3 的过渡不像我们希望的那么快,但是它的确发生了,越来越多的人使用、教授和推荐 Python 3。

由于很多人仍然使用 Python 2,Python 语言的开发者将 Python 2.7 的支持期扩展为 2015 到 2020。我们认为这 5 年足够用户从 Python 2 中迁移出来,我们的项目计划最迟在 2020 年底停止支持 Python 2。之后,我们能够简化代码,充分利用 Python 语言和标准库当前版本的很多新功能。 
此外,2020 年之前,我们的一些项目将减少对 Python 2.7 的支持,只修复 bug,新功能版本则使用 Python 3。这和 Python 语言本身的支持相匹配,Python 2.7 版本仅包括修复 bug 和安全提升。

第三方可能对我们的旧 Python 版本项目提供付费支持,时间长于我们对旧 Python 版本的支持。我们不会阻止这类行为,这是免费、开源软件的核心原则,因此这种行为是可行的。但是,如果你想要免费的第一方支持,请开始迁移到 Python 3 吧。

 

Python解释器

当我们编写python代码时,我们得到的是一个包含python代码以.py结尾的文本文件。要运行代码,就需要python解释器去执行.py文件。

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

 

Python安装

下载地址

https://www.python.org/downloads/

环境变量

win10环境变量: 计算机&#8211;>属性&#8211;>高级系统设置&#8211;>高级&#8211;>环境变量&#8211;>系统变量&#8211;>Path

Ps:

  注意添加 python\Scripts 路径,否则pip命令无法使用。

  多版本添加默认的版本路径,备用版本先改解释器名称再添加。如python.exe &#8211;> python2.exe,pip.exe&#8211;>pip2.exe

 

第一个程序

<span role=一、Python简介">

<span role=一、Python简介">

1 C:\Users\root>python
2 Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> print('hello world')
5 hello world

hello world

 

编码

python2.x 默认使用ascii码。文件开头需添加如下代码。python3.x解释器默认编码utf-8


<span role=一、Python简介">

<span role=一、Python简介">

1 #-*- coding:utf-8 -*-

coding:utf-8

 

ASCII


ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

<span role=一、Python简介">

 

 

Unicode

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

 

UTF-8

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。

 

gbk

对亚洲国家的文字做的对应关系

 

Ps:

  utf-8 使用3个字节来表示一个中文。gbk用俩个字节表示。

  一个字节是8位计算机码。如:00000000

 

变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

 

格式:变量名 = 值  

1 name = 'haibin'
2 age = 13

 

命名规则:


  1.   数字、字母、下划线(_)组成.

  2.   不能数字开头。

  3.   不能使用Python关键字。

  python关键字

1 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

 

Ps:

  别用汉字当变量。别用拼音当变量(有道词典了解一下)。见名知意。

  用小写。(大写为全局变量)

  变量、函数用下划线。类用驼峰。

<span role=一、Python简介">

 
if语句

格式


1 if 条件:
2 pass
3 elif 条件:
4 pass
5 else:
6 pass

Ps:

  elif 和 else非必须,可只有if。

 

实例


1 age = 20
2
3 if age > 18:
4 print("age > 18")
5 elif age > 13:
6 print("age > 13")
7 else:
8 print("age is" + str(age))

结果为:

age > 18

Ps:

  if 语句自上而下匹配条件,最多匹配一次。可以匹配不上。

 

while

格式


while 条件:
pass

Ps:

  while True 传说中的死循环,慎用。一、条件不给True。二、满足某种条件内部破坏循环。

实例


while True:
print("God is girl.")

 

for

格式


for i in 可迭代对象:
print("God is girl.")

Ps:

  必须为可迭代对象,否则报错。关于可迭代对象,后面详解。

 


示例


for i in [1, 5, 7, 9]:
print(i)

 

continue和break

continue # 跳出当前这一次循环
break # 跳出当前这个循环

示例


for i in [1, 5, 7, 9]:
if i == 7:
continue
if i == 9:
break
print(i)

Ps:

  需要注意的是,这里个参数只对循环语句即(while和for生效。)很多时候会遇到好几个语句、循环嵌套的情况。当运行结果与预期不符的时候用print打印排查。

 

练习题

求1-100的所有数的和(假装没有sum函数)


count = 1
sum
= 0
while count <101:
sum
+= count
count
+= 1
print(sum)

sum = 0
for i in range(1, 101):
sum
+= i
print(sum)

输出 1-100 内的所有奇数


count = 1
while count <101:
if count % 2 == 1:
print(count)
count
+= 1

for i in range(1, 101):
if i % 2 == 1:
print(i)

输出 1-100 内的所有偶数


for i in range(1, 101):
if i % 2 == 0:
print(i)

count = 1
while count <101:
if count % 2 == 0:
print(count)
count
+= 1

求1-2+3-4+5 &#8230; 99的所有数的和


sum = 0
for i in range(1, 100):
if i % 2 == 0:
sum
-= i
else:
sum
+= i
print(sum)

count = 1
sum
= 0
while count <100:
if count % 2 == 0:
sum
-= count
else:
sum
+= count
count
+= 1
print(sum)

用户登录(三次错误机会)



<span role=一、Python简介">

<span role=一、Python简介">

1 count = 1
2 while True:
3 user_name = input("UserName:")
4 passwd = input("Password:")
5 flag = False
6 for item in user_list:
7 if item['username'] == user_name and item['password'] == passwd:
8 print("Log in successfully.")
9 flag = True
10 break
11 if flag:
12 break
13 else:
14 print("The input is invalid.")
15 if count <3:
16 pass
17 else:
18 print("You've tried it too many times.")
19 break
20 count += 1

View Code

<span role=一、Python简介">
<span role=一、Python简介">

1 user_list = [
2 {'username':'root', 'password':'123' },
3 {'username':'ubuntu', 'password':'123'},
4 {'username':'admin', 'password':'123'}
5 ]
6 count = 1
7 while True:
8 user_name = input("UserName:")
9 passwd = input("Password:")
10 flag = False
11 for item in user_list:
12 if item['username'] == user_name and item["password"] == passwd:
13 flag = True
14 break
15 if flag:
16 print("Log in successfully.")
17 break
18 else:
19 print("The input is invalid.")
20 count += 1
21 if count == 4:
22 print("You've tried it too many times.")
23 break

View Code

<span role=一、Python简介">
<span role=一、Python简介">

1 user_list = [
2 {'username':'root', 'password':'123' },
3 {'username':'ubuntu', 'password':'123'},
4 {'username':'admin', 'password':'123'}
5 ]
6 count = 1
7 while True:
8 user_name = input("UserName:")
9 passwd = input("Password:")
10 flag = False
11 user_info = {'username':user_name, 'password':passwd}
12 if user_info in user_list:
13 print("Log in successfully.")
14 break
15 else:
16 print("The input is invalid.")
17 count += 1
18 if count == 4:
19 print("You've tried it too many times.")
20 break

View Code

 


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • OO第一单元自白:简单多项式导函数的设计与bug分析
    本文介绍了作者在学习OO的第一次作业中所遇到的问题及其解决方案。作者通过建立Multinomial和Monomial两个类来实现多项式和单项式,并通过append方法将单项式组合为多项式,并在此过程中合并同类项。作者还介绍了单项式和多项式的求导方法,并解释了如何利用正则表达式提取各个单项式并进行求导。同时,作者还对自己在输入合法性判断上的不足进行了bug分析,指出了自己在处理指数情况时出现的问题,并总结了被hack的原因。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
author-avatar
保卫祖国666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有